using System;

namespace Se.Framework.Logging
{
    public interface ILogger
    {
        void Error(string message, params object[] parameters);

        void Error(Exception ex, string message, params object[] parameters);

        void Information(string message, params object[] parameters);

        void Warning(string message, params object[] parameters);

        void Debug(string message, params object[] parameters);
    }

    public interface ISourceableLogger : ILogger
    {
        void Error(ILogSource source, Exception ex, string message, params object[] parameters);

        void Error(ILogSource source, string message, params object[] parameters);

        void Warning(ILogSource source, string message, params object[] parameters);

        void Information(ILogSource source, string message, params object[] parameters);

        void Debug(ILogSource source, string message, params object[] parameters);
    }
}